﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SW_SoftBully.Models;
using System.Json;
using log4net;
using SW_SoftBully.Models.ModuloAdministracion.Producto;
using SW_SoftBully.Models.ModuloAdministracion;
using System.Diagnostics;
using TheBullysStore.Models.ModuloAdministracion.Edificio;
   

namespace SW_SoftBully.Controllers.ModuloAdministracion
{

    public class ProductoController : Controller
    {
        private static ILog log = LogManager.GetLogger(typeof(ProductoController));
        ProductoDAO productoDao = new ProductoDAO();
        EdificioFacade edificioFacade = new EdificioFacade();
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Producto()
        {
            return View();
        }

        public ActionResult RegistrarProducto()
        {
            return View();
        }

        public ActionResult BuscarProducto()
        {
            return View();
        }

        [HttpPost]
        public JsonResult mantenerProducto(ProductoBean producto)
        {

            //System.Diagnostics.Debug.WriteLine("--------------------------------------> " + cliente.nombres);

            //return Json(new { me = proveedor.RUC });

            //if (clienteFacade.existecliente(cliente.id_tipoDocumento,cliente.nro_documento))
            //{
            //    return Json(new { me = "El cliente ya existe" });
            //}
try{
            string mensaje = productoDao.mantenerProducto(producto);

          
                return Json(new { mensaje });
}
catch (Exception ex)
{

    if (producto.accion == 0)
    {
        log.Error(" Eliminar Producto - GET(EXCEPTION):", ex);
    }


    if (producto.accion == 1)
    {
        log.Error(" Registrar Producto - GET(EXCEPTION):", ex);
    }

    if (producto.accion == 2)
    {
        log.Error(" Modificar Producto - GET(EXCEPTION):", ex);
    }
    
    return Json(new { me = "Ocurrió un error al registrar Horario" });
}        

        }



        [HttpPost]
        public JsonResult buscarProducto(FiltroProdcuto filtro)
        {


            List<ProductoBean> listaProducto = productoDao.buscarProducto(filtro);


            return Json(new { listaProducto });


        }


        [HttpPost]
        public JsonResult cargarTipoProducto()
        {
            List<string> listaTipoProducto = productoDao.cargarTipoProducto();

            return Json(new { listaTipoProducto });
        }

        public JsonResult cargarEdificios(EdificioBean edificio)
        {
            try
            {
                List<EdificioBean> listaEdificio = edificioFacade.Listaredificio(edificio);
                return Json(new { listaEdificio });
            }
            catch (Exception ex)
            {
                //  log.Error("CargarEdificios - GET(EXCEPTION):", ex);
                return Json(new { listaEdificio = "Ocurrió un error al cargar los Edificios" });
            }

        }

    }
}
